import pandas as pd
from sqlalchemy import create_engine

# CSV 文件路径
csv_file = 'stock_info.csv'

# 读取 CSV，忽略最新价格列
df = pd.read_csv(csv_file)
df = df.drop(columns=['最新价格'])

# 把上市时间转换成日期类型，无效值变为 NaT
df['上市时间'] = pd.to_datetime(df['上市时间'], format='%Y%m%d', errors='coerce')

# 把数字列中的非数字（比如 '-'）替换为 NaN
numeric_cols = ['总股本', '流通股', '总市值', '流通市值']
for col in numeric_cols:
    df[col] = pd.to_numeric(df[col], errors='coerce')

# 重命名列和数据库字段保持一致
df = df.rename(columns={
    '股票代码': 'stock_code',
    '股票简称': 'stock_name',
    '总股本': 'total_shares',
    '流通股': 'circulating_shares',
    '总市值': 'total_market_value',
    '流通市值': 'circulating_market_value',
    '行业': 'industry',
    '上市时间': 'listed_date'
})

# 补齐股票代码到 6 位（前面补 0）
df["stock_code"] = df["stock_code"].astype(str).str.zfill(6)

# 创建 MySQL 连接
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/cn_stock_data')

# 写入数据库（如果表已经存在，追加数据）
df.to_sql('company_info', con=engine, if_exists='replace', index=False)
